home *** CD-ROM | disk | FTP | other *** search
/ C++ für Kids / C++ for kids.iso / Buch / Tafel1.cpp < prev    next >
C/C++ Source or Header  |  1999-01-10  |  4KB  |  121 lines

  1. //---------------------------------------------------------------------------
  2. #include <vcl\vcl.h>
  3. #pragma hdrstop
  4.  
  5. #include "Tafel1.h"
  6. //---------------------------------------------------------------------------
  7. #pragma link "Grids"
  8. #pragma resource "*.dfm"
  9.  
  10. TStringList *Tabelle;
  11. int Anzahl, Zeilen, Spalten;
  12. TForm1 *Form1;
  13.  
  14. //---------------------------------------------------------------------------
  15. __fastcall TForm1::TForm1(TComponent* Owner)
  16.     : TForm(Owner)
  17. {
  18. }
  19. //---------------------------------------------------------------------------
  20. void __fastcall TForm1::GetTable (String DateiName)
  21. {
  22.   // Tabelleninhalt laden
  23.   Tabelle->LoadFromFile (DateiName);
  24.   Anzahl = Tabelle->Count;
  25.  
  26.   // Anzahl der Zeilen/Spalten ermitteln
  27.   Zeilen  = StrToInt (Tabelle->Strings[Anzahl-2]);
  28.   Spalten = StrToInt (Tabelle->Strings[Anzahl-1]);
  29.   StringGrid1->RowCount = Zeilen;
  30.   StringGrid1->ColCount = Spalten;
  31.  
  32.   // Zeilen-spaltenweise aus Tabelle in Stringgitter einlesen
  33.   for (int i=0; i<Zeilen; i++)
  34.   for (int j=0; j<Spalten; j++)
  35.   {
  36.     StringGrid1->Cells[j][i] = Tabelle->Strings[i*Spalten+j];
  37.   }
  38. }
  39. //---------------------------------------------------------------------------
  40. void __fastcall TForm1::PutTable (String DateiName)
  41. {
  42.   // Tabelle l÷schen
  43.   Tabelle->Clear ();
  44.  
  45.   // Zeilen-spaltenweise aus Stringgitter in Tabelle kopieren
  46.   for (int i=0; i<StringGrid1->RowCount; i++)
  47.   for (int j=0; j<StringGrid1->ColCount; j++)
  48.   {
  49.     Tabelle->Add (StringGrid1->Cells[j][i]);
  50.   }
  51.   // Anzahl der Zeilen/Spalten merken
  52.   Tabelle->Add (IntToStr(StringGrid1->RowCount));
  53.   Tabelle->Add (IntToStr(StringGrid1->ColCount));
  54.  
  55.   // Tabelleninhalt speichern
  56.   Tabelle->SaveToFile(DateiName);
  57. }
  58. //---------------------------------------------------------------------------
  59. void __fastcall TForm1::FormCreate(TObject *Sender)
  60. {
  61.   // Vorgabe der Zeilen/Spalten
  62.   StringGrid1->ColCount = 5;
  63.   StringGrid1->RowCount = 10;
  64.   StringGrid1->ColWidths[0]  = 60;
  65.   StringGrid1->RowHeights[0] = 25;
  66.  
  67.   StringGrid1->Align = alClient;
  68.   StringGrid1->Options << goEditing;
  69.  
  70.   Tabelle = new TStringList ();
  71.   Spalten = StringGrid1->ColCount;
  72. }
  73. //---------------------------------------------------------------------------
  74. void __fastcall TForm1::Neu1Click(TObject *Sender)
  75. {
  76.   try
  77.   {
  78.     Anzahl  = StrToInt(InputBox ("Anzahl der Zeilen:","",10));
  79.     Spalten = StrToInt(InputBox ("Anzahl der Spalten:","",5));
  80.     if (Anzahl <= 0)  Anzahl  = 1;
  81.     if (Spalten <= 0) Spalten = 1;
  82.   }
  83.   catch (...)
  84.   {
  85.     Anzahl  = 10;
  86.     Spalten = 5;
  87.   }
  88.   StringGrid1->ColCount = Spalten;
  89.   StringGrid1->RowCount = Anzahl;
  90. }
  91. //---------------------------------------------------------------------------
  92. void __fastcall TForm1::Oeffnen1Click(TObject *Sender)
  93. {
  94.   if (OpenDialog1->Execute ())
  95.     GetTable (OpenDialog1->FileName);
  96. }
  97. //---------------------------------------------------------------------------
  98. void __fastcall TForm1::Speichern1Click(TObject *Sender)
  99. {
  100.   if (SaveDialog1->Execute ())
  101.     PutTable (SaveDialog1->FileName);
  102. }
  103. //---------------------------------------------------------------------------
  104. void __fastcall TForm1::Ende1Click(TObject *Sender)
  105. {
  106.   Close ();
  107. }
  108. //---------------------------------------------------------------------------
  109. void __fastcall TForm1::Spaltenbreite1Click(TObject *Sender)
  110. {
  111.   StringGrid1->ColWidths[StringGrid1->Col]  =
  112.     StrToInt(InputBox ("Spaltenbreite:","",100));
  113. }
  114. //---------------------------------------------------------------------------
  115. void __fastcall TForm1::Zeilenhoehe1Click(TObject *Sender)
  116. {
  117.   StringGrid1->RowHeights[StringGrid1->Row] =
  118.     StrToInt(InputBox ("Zeilenh÷he:","",25));
  119. }
  120. //---------------------------------------------------------------------------
  121.